package com.zhang.aloneway_springboot.config;

import com.zhang.aloneway_springboot.inteceptor.LoginInterceptor;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 我在interceptor中编写了一个登录拦截器，但是把它孤独地放在那里，它并不生效。
 * 要把它放进一个配置文件中，项目启动的时候，扫描这个配置文件，那我写的登录拦截器就开始干活了。
 */
@SpringBootConfiguration //有了这个注解，spring框架就知道这是个配置类，它在启动的时候，就会扫描这个类了
                    //我写的配置类要实现人家WebMvcConfigurer接口，人家提供了很多好用的方法
public class MyWebConfigurer implements WebMvcConfigurer {

    @Bean //通过这个方法，获取到LoginInterceptor对象
    public LoginInterceptor getLoginInterceptor(){
        return new LoginInterceptor();
    }

    @Override //重写人家接口的这个方法
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(getLoginInterceptor())  //获取到LoginInterceptor对象
                .addPathPatterns("/**")  //对所有的路径都要拦截，别人别想轻易访问
               .excludePathPatterns("/index.html");  //除了index.html页面
    }
}
